﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class DanhMuc_QuanHeGiaDinh : System.Web.UI.Page
{
    SecurityLib.Sec_AES _ps = new SecurityLib.Sec_AES();
    protected void Page_Load(object sender, EventArgs e)
    {
        
        if (!IsPostBack)
        {
            btnclose.Attributes.Add("onClick", "javascript:history.back(); return false;");//them su kien vao  button de quay ve trang truoc
            //ve ban than
            EnabeControlsVeNhanThan(false);
            btnsave.Enabled = false;
            btnedit.Enabled = false;
            btndelete.Enabled = false;
            codeid.Value = "";
            //ve ben vo/chong
            EnabeControlsVeBenVoChong(false);
            btnsave1.Enabled = false;
            btnedit1.Enabled = false;
            btndelete1.Enabled = false;
            codeid1.Value = "";
        }
    }
    private void EnabeControlsVeNhanThan(bool state)
    {
        txtHoten.Enabled = state;
        drlQuanhe.Enabled = state;
        txtHoKhauThuongTru.Enabled = state;
        txtThutu.Enabled = state;
        txtGioiThieu.Enabled = state;
        txtDiachi.Enabled = state;
        BindGrid(gridvenhanthan, true);
    }

    private void EnabeControlsVeBenVoChong(bool state)
    {
        txtHoten1.Enabled = state;
        drlQuanhe1.Enabled = state;
        txtHoKhauThuongTru1.Enabled = state;
        txtThutu1.Enabled = state;
        txtGioiThieu1.Enabled = state;
        txtDiachi1.Enabled = state;
        BindGrid(gridvenhanthan1, false);
    }

    private void XoaDuLieuVebenvochong()
    {
        txtHoten1.Text = "";
        txtHoKhauThuongTru1.Text = "";
        txtThutu1.Text = "";
        txtGioiThieu1.Text = "";
        txtDiachi1.Text = "";
        codeid1.Value = "";
        txtNgaySinh1.Value = "";
        drlQuanhe1.SelectedValue = "-1";
    }

    private void XoaDuLieuVeNhanThan()
    {
        txtHoten.Text = "";
        txtHoKhauThuongTru.Text = "";
        txtThutu.Text = "";
        txtGioiThieu.Text = "";
        txtDiachi.Text = "";
        codeid.Value = "";
        txtNgaySinh.Value = "";
        drlQuanhe.SelectedValue = "-1";
    }
    protected void btnadd_Click(object sender, EventArgs e)
    {
        codeid.Value = "";
        if (btnadd.Text == "Thêm mới")
        {
            XoaDuLieuVeNhanThan();
            btnadd.Text = "Hủy";
            EnabeControlsVeNhanThan(true);
            btnsave.Enabled = true;
            btndelete.Enabled = false;
            CatalogAccess.BindItemToDropDown(drlQuanhe,1006);
        }
        else
        {
            btnadd.Text = "Thêm mới";
            EnabeControlsVeNhanThan(false);
            btnsave.Enabled = false;
            btndelete.Enabled = true;
            XoaDuLieuVeNhanThan();
        }
    }
    protected void btnsave_Click(object sender, EventArgs e)
    {
        string madoanvien = _ps.Decrypt(Request.QueryString["codeunionists"].Replace(" ", "+"),"gold",128);
        int thutu;
        bool kiemtra = int.TryParse(txtThutu.Text,out thutu);
        if (codeid.Value == "")//truong hoi them moi
        {
            bool success = CatalogAccess.InsertQuanHeGiaDinh(txtHoten.Text, txtNgaySinh.Value, int.Parse(drlQuanhe.SelectedValue.ToString()), txtHoKhauThuongTru.Text, txtDiachi.Text, thutu, txtGioiThieu.Text, true, madoanvien);
            if (success)
            {
                BindGrid(gridvenhanthan, true);
                lblmessage.Text = "Đã thêm thành công.";
                lblmessage.Visible = true;
                EnabeControlsVeNhanThan(false);
                btnadd.Text = "Thêm mới";
            }
            else
            {
                lblmessage.Text = "Không thêm được, hãy kiểm tra lại thông tin.";
                lblmessage.Visible = true;
            }
        }
        else//truong  hop update
        {
            bool success = CatalogAccess.UpdateQuanHeGiaDinh(int.Parse(codeid.Value),txtHoten.Text, txtNgaySinh.Value, int.Parse(drlQuanhe.SelectedValue.ToString()), txtHoKhauThuongTru.Text, txtDiachi.Text, thutu, txtGioiThieu.Text);
            if (success)
            {
                BindGrid(gridvenhanthan, true);
                lblmessage.Text = "Đã cập nhật thành công.";
                lblmessage.Visible = true;
                btnsave.Enabled = false;
                btnedit.Text = "Hiệu chỉnh";
                btnadd.Enabled = true;
            }
            else
            {
                lblmessage.Text = "Không không cập nhật được, hãy kiểm tra lại thông tin.";
                lblmessage.Visible = true;
            }
        }
    }
    private void BindGrid(GridView grid, bool loai)
    {
        _dbDataContext _db = new _dbDataContext();
        var val = from p in _db.tblQuanHeGiaDinhs.Where(r => r.Loai == loai) select new { ID = p.ID, HoVaTen = p.HoVaTen.Trim(), QuanHe = p.tblDanhMuc.TenDanhMuc.Trim(), NgaySinh = string.Format("{0:dd/MM/yyyy}", p.NgaySinh) };
        grid.DataSource = val.ToList();
        grid.DataBind();
    }
    protected void gridvenhanthan_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        CatalogAccess.BindItemToDropDown(drlQuanhe, 1006);
        int id = int.Parse(gridvenhanthan.DataKeys[e.RowIndex].Value.ToString());
        codeid.Value = id.ToString();
        _dbDataContext _db = new _dbDataContext();
        var val = _db.tblQuanHeGiaDinhs.Single(r => r.ID == id);
        txtHoten.Text = val.HoVaTen.Trim();
        txtNgaySinh.Value = string.Format("{0:dd/MM/yyyy}", val.NgaySinh);
        drlQuanhe.SelectedValue = val.QuanHeID.ToString();
        txtHoKhauThuongTru.Text = val.HoKhauThuongTru.Trim();
        txtDiachi.Text = val.DiaChi.Trim();
        txtThutu.Text = val.ThuTu.ToString();
        txtGioiThieu1.Text = val.GioiThieu.Trim();
        EnabeControlsVeNhanThan(false);
        lblmessage.Text = "";
        lblmessage.Visible = false;
        btnedit.Enabled = true;
        btndelete.Enabled = true;
        btnadd.Text = "Thêm mới";
        btnsave.Enabled = false;
    }
    protected void btnedit_Click(object sender, EventArgs e)
    {
        if (btnedit.Text == "Hiệu chỉnh")
        {
            EnabeControlsVeNhanThan(true);
            btnadd.Enabled = false;
            btnsave.Enabled = true;
            btndelete.Enabled = false;
            btnedit.Text = "Hủy";
        }
        else
        {
            btnedit.Text = "Hiệu chỉnh";
            btndelete.Enabled = true;
            btnsave.Enabled = false;
            btnadd.Enabled = true;
            EnabeControlsVeNhanThan(false);
        }
    }
    protected void btndelete_Click(object sender, EventArgs e)
    {
        bool success = CatalogAccess.DeleteQuanHeGiaDinh(int.Parse(codeid.Value));
        if (success)
        {
            BindGrid(gridvenhanthan, true);
            XoaDuLieuVeNhanThan();
        }
        else
        {
            lblmessage.Text = "Không không cập nhật được, hãy kiểm tra lại thông tin.";
            lblmessage.Visible = true;
        }
    }
    protected void btnadd1_Click(object sender, EventArgs e)
    {
        codeid1.Value = "";
        if (btnadd1.Text == "Thêm mới")
        {
            XoaDuLieuVebenvochong();
            btnadd1.Text = "Hủy";
            EnabeControlsVeBenVoChong(true);
            btnsave1.Enabled = true;
            btndelete1.Enabled = false;
            CatalogAccess.BindItemToDropDown(drlQuanhe1, 1006);
        }
        else
        {
            btnadd1.Text = "Thêm mới";
            EnabeControlsVeBenVoChong(false);
            btnsave1.Enabled = false;
            btndelete1.Enabled = true;
            XoaDuLieuVebenvochong();
        }
    }
    protected void btnsave1_Click(object sender, EventArgs e)
    {
        string madoanvien = _ps.Decrypt(Request.QueryString["codeunionists"].Replace(" ", "+"),"gold",128);
        int thutu1;
        bool kiemtra1 = int.TryParse(txtThutu1.Text,out thutu1);
        if (codeid1.Value == "")//truong hoi them moi
        {
            bool success = CatalogAccess.InsertQuanHeGiaDinh(txtHoten1.Text, txtNgaySinh1.Value, int.Parse(drlQuanhe1.SelectedValue.ToString()), txtHoKhauThuongTru1.Text, txtDiachi1.Text, thutu1, txtGioiThieu1.Text, false, madoanvien);
            if (success)
            {
                BindGrid(gridvenhanthan1, false);
                lblmessage1.Text = "Đã thêm thành công.";
                lblmessage1.Visible = true;
                EnabeControlsVeBenVoChong(false);
                btnadd1.Text = "Thêm mới";
            }
            else
            {
                lblmessage1.Text = "Không thêm được, hãy kiểm tra lại thông tin.";
                lblmessage1.Visible = true;
            }
        }
        else//truong hop update
        {
            bool success = CatalogAccess.UpdateQuanHeGiaDinh(int.Parse(codeid1.Value), txtHoten1.Text, txtNgaySinh1.Value, int.Parse(drlQuanhe1.SelectedValue.ToString()), txtHoKhauThuongTru1.Text, txtDiachi1.Text, thutu1, txtGioiThieu1.Text);
            if (success)
            {
                BindGrid(gridvenhanthan1, false);
                lblmessage1.Text = "Đã cập nhật thành công.";
                lblmessage1.Visible = true;
                btnsave1.Enabled = false;
                btnedit1.Text = "Hiệu chỉnh";
                btnadd1.Enabled = true;
            }
            else
            {
                lblmessage1.Text = "Không không cập nhật được, hãy kiểm tra lại thông tin.";
                lblmessage1.Visible = true;
            }
        }
    }
    protected void btnedit1_Click(object sender, EventArgs e)
    {
        if (btnedit1.Text == "Hiệu chỉnh")
        {
            EnabeControlsVeBenVoChong(true);
            btnadd1.Enabled = false;
            btnsave1.Enabled = true;
            btndelete1.Enabled = false;
            btnedit1.Text = "Hủy";
        }
        else
        {
            btnedit1.Text = "Hiệu chỉnh";
            btndelete1.Enabled = true;
            btnsave1.Enabled = false;
            btnadd1.Enabled = true;
            EnabeControlsVeBenVoChong(false);
        }
    }
    protected void btndelete1_Click(object sender, EventArgs e)
    {
        bool success = CatalogAccess.DeleteQuanHeGiaDinh(int.Parse(codeid1.Value));
        if (success)
        {
            BindGrid(gridvenhanthan1, false);
            XoaDuLieuVebenvochong();
        }
        else
        {
            lblmessage1.Text = "Không không cập nhật được, hãy kiểm tra lại thông tin.";
            lblmessage1.Visible = true;
        }
    }
    protected void gridvenhanthan1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        CatalogAccess.BindItemToDropDown(drlQuanhe1, 1006);
        int id = int.Parse(gridvenhanthan1.DataKeys[e.RowIndex].Value.ToString());
        codeid1.Value = id.ToString();
        _dbDataContext _db = new _dbDataContext();
        var val = _db.tblQuanHeGiaDinhs.Single(r => r.ID == id);
        txtHoten1.Text = val.HoVaTen.Trim();
        txtNgaySinh1.Value = string.Format("{0:dd/MM/yyyy}", val.NgaySinh);
        drlQuanhe1.SelectedValue = val.QuanHeID.ToString();
        txtHoKhauThuongTru1.Text = val.HoKhauThuongTru.Trim();
        txtDiachi1.Text = val.DiaChi.Trim();
        txtThutu1.Text = val.ThuTu.ToString();
        txtGioiThieu1.Text = val.GioiThieu.Trim();
        EnabeControlsVeBenVoChong(false);
        lblmessage1.Text = "";
        lblmessage1.Visible = false;
        btnedit1.Enabled = true;
        btndelete1.Enabled = true;
        btnadd1.Text = "Thêm mới";
        btnsave1.Enabled = false;
    }
}